﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Text;
using System.Threading.Tasks;

namespace KaytechSoftware.Cms.Entities.Interfaces
{
    public interface IRepository<T> : IUnitOfWorkHolder
    {
        IQueryable<T> GetAll();
        IQueryable<T> GetAll(Expression<Func<T, object>> includeExpression);
        IQueryable<T> GetAll(IEnumerable<Expression<Func<T, object>>> includeExpressions);
        T GetById(long id);
        void Add(T entity);
        void Edit(T entity);
        void Delete(T entity);
    }
}
